  
import axios, { AxiosRequestConfig, AxiosPromise } from 'axios'

interface Person {
    readonly id: number // 只读
    name: string
    age?: number // 可选
}

interface IUser {
    err: number,
    msg: string,
    data: {
        _id: string,
        nickname: string,
        fans: number,
        follow: number,
        time: number,
        icon: string
    },
    token: string
}
// 将IUser里面的数据全部变成可选类型 （只能影响上一层，不能影响子集）
type TUser = Partial<IUser> & string | null;

// 定义全局变量，重定义了window接口  Math.pow('111')
declare global{
    interface Window{
        axios(config: AxiosRequestConfig):AxiosPromise<any>
    }
}

interface IStoreState {
    home: object[],
    bLoading: boolean
}

export {
    Person, TUser, IStoreState
}

